#pragma once
#include <iostream>
#include <string>
#include "capture/address.h"

using namespace std;

class Interface
{
public:
    enum Type{
        IF_WIRED	= 0,
        IF_AIRPCAP	= 1,
        IF_PIPE		= 2,
        IF_STDIN	= 3,
        IF_BLUETOOTH	= 4,
        IF_WIRELESS	= 5,
        IF_DIALUP	= 6,
        IF_USB		= 7,
        IF_EXTCAP	= 8,
        IF_VIRTUAL	= 9
    };

    struct Info{
        enum Type type;
        string name;
        Address address;
    }info;

	Interface(string ifName);
    bool exist();

    static void GetInterfaceInfo(Info& info);
    static vector<pair<string, unsigned int>> GetAllInterface();

private:

};